var feloader = function(t) {
    !function(t) {
        "use strict";
        for (var e, r, n = {}, o = function() {}, i = "memory".split(","), a = "assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(","); e = i.pop(); )
            t[e] = t[e] || n;
        for (; r = a.pop(); )
            t[r] = t[r] || o
    }(this.console = this.console || {});
    var e = this
      , r = function() {
        this.Env = {
            host: e,
            mods: {}
        },
        this.Config = {
            debug: "",
            packages: {},
            fns: {},
            useDailyAssets: !1,
            forceAssetsHost: t,
           
            crossorigin: !0
        },
        (this.Loader = {}).Status = {
            ERROR: -1,
            UNLOADED: 0,
            LOADING: 1,
            LOADED: 2,
            INITIALIZING: 3,
            INITIALIZED: 4
        },
        this.initUtils(),
        this.initDataStructure(),
        this.initCssOnLoad(),
        this.initGetScript(),
        this.initConfig(),
        this.initComboLoader(),
        this.initLoader(),
        this.init()
    };
    return r.prototype.__BUILD_TIME = "",
    r.prototype.version = "3.0.2",
    r.prototype.config = function(e, r) {
        var n, o, i, a = this.Config, s = a.fns, u = this;
        if ("string" == typeof e)
            n = s[e],
            r === t ? o = n ? n.call(u) : a[e] : n ? o = n.call(u, r) : a[e] = r;
        else
            for (var c in e)
                r = e[c],
                (i = s[c]) ? i.call(u, r) : a[c] = r;
        return o
    }
    ,
    r
}();
!function(t) {
    var e = new RegExp("^([\\w\\d+.-]+:)?(?://(?:([^/?#@]*)@)?([\\w\\d\\-\\u0100-\\uffff.+%]*|\\[[^\\]]+\\])(?::([0-9]+))?)?([^?#]+)?(\\?[^#]*)?(#.*)?$")
      , r = {
        protocol: 1,
        auth: 2,
        hostname: 3,
        port: 4,
        pathname: 5,
        search: 6,
        hash: 7
    };
    function n(t) {
        var e = 0;
        return parseFloat(t.replace(/\./g, (function() {
            return 0 == e++ ? "." : ""
        }
        )))
    }
    function o(t) {
        var e = t.split(/\//);
        return "/" === t.charAt(0) && e[0] && e.unshift(""),
        "/" === t.charAt(t.length - 1) && t.length > 1 && e[e.length - 1] && e.push(""),
        e
    }
    var i = Array.isArray || function(t) {
        return "[object Array]" === Object.prototype.toString.call(t)
    }
    ;
    function a(t) {
        var e = [];
        for (var r in t)
            e.push(r);
        return e
    }
    function s(t, e) {
        for (var r in e)
            t[r] = e[r];
        return t
    }
    var u = /(http(s)?:)?\/\/([^/]+)(?::(\d+))?/
      , c = Array.prototype.map
      , l = Array.prototype.filter
      , f = String.prototype.startsWith
      , d = {
        noop: function() {},
        filter: l ? function(t, e, r) {
            return c.call(t, e, r || this)
        }
        : function(t, e, r) {
            for (var n = t.length, o = new Array(n), i = 0; i < n; i++) {
                var a = "string" == typeof t ? t.charAt(i) : t[i];
                (a || i in t) && e.call(r || this, a, i, t) && o.push(a)
            }
            return o
        }
        ,
        map: c ? function(t, e, r) {
            return c.call(t, e, r || this)
        }
        : function(t, e, r) {
            for (var n = t.length, o = new Array(n), i = 0; i < n; i++) {
                var a = "string" == typeof t ? t.charAt(i) : t[i];
                (a || i in t) && (o[i] = e.call(r || this, a, i, t))
            }
            return o
        }
        ,
        startsWith: f ? function(t, e) {
            return f.call(t, e)
        }
        : function(t, e) {
            return 0 === t.lastIndexOf(e, 0)
        }
        ,
        isEmptyObject: function(t) {
            for (var e in t)
                if (void 0 !== e)
                    return !1;
            return !0
        },
        endsWith: function(t, e) {
            var r = t.length - e.length;
            return r >= 0 && t.indexOf(e, r) === r
        },
        now: Date.now || function() {
            return +new Date
        }
        ,
        each: function(t, e) {
            var r, n, o = 0;
            if (i(t))
                for (n = t.length; o < n && !1 !== e(t[o], o, t); o++)
                    ;
            else
                for (n = (r = a(t)).length; o < n && !1 !== e(t[r[o]], r[o], t); o++)
                    ;
        },
        keys: a,
        isArray: i,
        throttle: function(t, e, r) {
            var n, o, i, a = null, s = 0;
            r || (r = {});
            var u = function() {
                return window.performance ? performance.now() : Date.now()
            }
              , c = function() {
                s = !1 === r.leading ? 0 : u(),
                a = null,
                i = t.apply(n, o),
                a || (n = o = null)
            };
            return function() {
                var l = u();
                s || !1 !== r.leading || (s = l);
                var f = e - (l - s);
                return n = this,
                o = arguments,
                f <= 0 || f > e ? (clearTimeout(a),
                a = null,
                s = l,
                i = t.apply(n, o),
                a || (n = o = null)) : a || !1 === r.trailing || (a = setTimeout(c, f)),
                i
            }
        },
        indexOf: function(t, e) {
            for (var r = 0, n = e.length; r < n; r++)
                if (e[r] === t)
                    return r;
            return -1
        },
        normalizeSlash: function(t) {
            return t.replace(/\\/g, "/")
        },
        normalizePath: function(t, n) {
            if ("." !== n.charAt(0))
                return n;
            var i = "";
            if (d.startsWithProtocol(t)) {
                var a = function(t) {
                    var n = t.match(e) || []
                      , o = {};
                    for (var i in r)
                        o[i] = n[r[i]];
                    return o.hostname && (o.hostname = o.hostname.toLowerCase()),
                    o.hostname && !o.pathname && (o.pathname = "/"),
                    o.host = o.hostname,
                    o.port && (o.host = o.hostname + ":" + o.port),
                    o
                }(t);
                i = a.protocol + "//" + a.host,
                t = a.pathname
            }
            var s = o(t)
              , u = o(n);
            s.pop();
            for (var c = 0, l = u.length; c < l; c++) {
                var f = u[c];
                "." === f || (".." === f ? s.pop() : s.push(f))
            }
            return i + s.join("/").replace(/\/+/, "/")
        },
        startsWithProtocol: function(t) {
            return d.startsWith(t, "http:") || d.startsWith(t, "https:") || d.startsWith(t, "file:")
        },
        isSameOriginAs: function(t, e) {
            var r = t.match(u)
              , n = e.match(u);
            return r[0] === n[0]
        },
        getHash: function(t) {
            var e, r = 5381;
            for (e = t.length; --e > -1; )
                r = (r << 5) + r + t.charCodeAt(e);
            return r + ""
        },
        getSuffix: function(t) {
            var e = t.match(/\.(\w+)$/);
            if (e)
                return e[1]
        }
    };
    t.prototype.initUtils = function() {
        var t, e, r = this.Loader, o = this.Env, i = r.Status, a = o.mods, u = o.host, c = r.Utils = {}, l = u.document, f = (u.navigator || {}).userAgent || "";
        ((t = f.match(/Web[Kk]it[\/]{0,1}([\d.]*)/)) || (t = f.match(/Safari[\/]{0,1}([\d.]*)/))) && t[1] && (c.webkit = n(t[1])),
        (t = f.match(/Trident\/([\d.]*)/)) && (c.trident = n(t[1])),
        (t = f.match(/Gecko/)) && (c.gecko = .1,
        (t = f.match(/rv:([\d.]*)/)) && t[1] && (c.gecko = n(t[1]))),
        (t = f.match(/MSIE ([^;]*)|Trident.*; rv(?:\s|:)?([0-9.]+)/)) && (e = t[1] || t[2]) && (c.ie = n(e),
        c.ieMode = l.documentMode || c.ie,
        c.trident = c.trident || 1),
        s(c, d),
        s(c, {
            mix: s,
            docHead: function() {
                return l.getElementsByTagName("head")[0] || l.documentElement
            },
            collectErrors: function(t, e, r) {
                var n, o, a;
                for (r = r || {},
                e = e || [],
                n = 0; n < t.length; n++)
                    r[o = (a = t[n]).id] || (r[o] = 1,
                    a.status !== i.ERROR ? c.collectErrors(a.getNormalizedRequiredModules(), e, r) : e.push(a));
                return e
            },
            createModule: function(t, e) {
                t = function(t) {
                    return "/" === t.charAt(0) && (t = 0 === t.indexOf("//") ? location.protocol + t : location.protocol + "//" + location.host + t),
                    "/" === t.charAt(t.length - 1) && (t += "index"),
                    "@" === t[0] && (2 === t.split("/").length ? t += "/index" : t = t.replace("/module/", "/").replace("/lib/", "/")),
                    d.endsWith(t, ".js") && (t = t.slice(0, -3)),
                    t
                }(t);
                var n = a[t];
                return n || (n = a[t]),
                n ? (e && n.reset(e),
                n) : (a[t] = n = new r.Module(s({
                    id: t
                }, e)),
                n)
            },
            createModules: function(t) {
                return c.map(t, (function(t) {
                    return c.createModule(t)
                }
                ))
            },
            initModules: function(t) {
                var e, r = t.length, n = 1;
                for (e = 0; e < r; e++)
                    n &= t[e].initRecursive();
                return n
            },
            getModulesExports: function(t) {
                for (var e = t.length, r = [], n = 0; n < e; n++) {
                    var o = t[n].getExports();
                    o && o.default ? r.push(o.default) : r.push(o)
                }
                return r
            },
            addModule: function(t, e, r) {
                var n = a[t];
                n && void 0 !== n.factory ? console.warn(t + " is defined more than once") : c.createModule(t, s({
                    id: t,
                    status: i.LOADED,
                    factory: e
                }, r))
            }
        })
    }
}(feloader),
function(t, e) {
    function r(t, r) {
        var n = this;
        n.name = e,
        n.base = e,
        n.main = e,
        n.filter = e,
        n.tag = e,
        n.charset = e,
        n.combine = e,
        n.group = e,
        n.modules = {},
        n.ctx = r,
        n.ctx.Loader.Utils.mix(n, t)
    }
    function n(t, r) {
        return t[r] !== e ? t[r] : t.ctx.Config[r]
    }
    function o(t, r) {
        var n = this;
        n.ctx = r;
        var o = this.ctx.Loader.Status
          , i = this.ctx.Loader.Utils;
        n.exports = e,
        n.module = n,
        n.status = o.UNLOADED,
        n.id = e,
        n.factory = e,
        n.config = e,
        n.cjs = 1,
        (0,
        this.ctx.Loader.Utils.mix)(n, t),
        n.waits = {};
        var a = n._require = function(t, e) {
            if ("string" == typeof t) {
                var r = n.resolve(t);
                return i.initModules(r.getNormalizedModules()),
                r.getExports()
            }
            !function(t, e, r) {
                for (var n = 0; n < e.length; n++)
                    e[n] = t.resolve(e[n]).id;
                t.ctx.use(e, r)
            }(n, t, e)
        }
        ;
        a.toUrl = function(t) {
            var e = n.getUri()
              , r = ""
              , o = e
              , a = e.indexOf("//");
            return -1 !== a && (r = e.slice(0, a + 2),
            o = e.slice(a + 2)),
            r + i.normalizePath(o, t)
        }
        ,
        a.load = r.getScript
    }
    function i(e, r) {
        var n = e.indexOf("!");
        if (-1 !== n) {
            var o = e.substring(0, n);
            e = e.substring(n + 1);
            var i = r.ctx.Loader.Utils.createModule(o);
            i.initRecursive();
            var a = i.getExports() || {};
            a.alias && (e = a.alias(t, e, o))
        }
        return e
    }
    r.prototype = {
        constructor: r,
        reset: function(t) {
            for (var e in this.ctx.Loader.Utils.mix(this, t),
            this.modules)
                this.modules[e].reset()
        },
        getFilter: function() {
            return n(this, "filter")
        },
        getTag: function() {
            return n(this, "tag")
        },
        getBase: function() {
            return this.base
        },
        getCharset: function() {
            return n(this, "charset")
        },
        isCombine: function() {
            return n(this, "combine")
        },
        getGroup: function() {
            return n(this, "group")
        },
        addChildModule: function(t, e) {
            this.modules[t] = e
        }
    },
    o.prototype = {
        feloader: 1,
        constructor: o,
        config: function() {
            return this.config
        },
        reset: function(t) {
            var e = this;
            (0,
            this.ctx.Loader.Utils.mix)(e, t),
            t && t.requires && e.setRequiresModules(t.requires),
            delete e.packageInfo
        },
        require: function(t) {
            return this.resolve(t).getExports()
        },
        resolve: function(t) {
            var e = this.ctx.Loader.Utils;
            return e.createModule(e.normalizePath(this.id, t))
        },
        add: function(t) {
            this.waits[t.id] = t
        },
        remove: function(t) {
            delete this.waits[t.id]
        },
        contains: function(t) {
            return this.waits[t.id]
        },
        flush: function() {
            this.ctx.Loader.Utils.each(this.waits, (function(t) {
                t.flush()
            }
            )),
            this.waits = {}
        },
        getType: function() {
            var t = this.ctx.Loader.Utils
              , e = this
              , r = e.type;
            if (!r) {
                var n = e.id;
                r = t.endsWith(n, ".css") ? "css" : "js",
                e.type = r
            }
            return r
        },
        getAlias: function() {
            var t = this
              , e = t.id
              , r = function(t) {
                var e, r, n = t.id, o = t.alias;
                "string" == typeof o && (t.alias = o = [o]);
                if (o)
                    return o;
                (e = t.getPackage()) && (e.name === n && (r = e.main) ? (n += "/",
                "." !== r.charAt(0) && (r = "./" + r),
                o = [t.ctx.Loader.Utils.normalizePath(n, r)]) : e.alias && (o = e.alias(n)));
                return o = t.alias = o || [i(n, t)]
            }(t)
              , n = [];
            if (r[0] === e)
                n = r;
            else if (r.length > 1)
                for (var o = 0, a = r.length; o < a; o++) {
                    var s = r[o];
                    if (s && s !== e) {
                        var u = this.ctx.Loader.Utils.createModule(s).getAlias();
                        u ? n.push.apply(n, u) : n.push(s)
                    }
                }
            else
                n.push(r[0]);
            return t.normalizedAlias = n,
            n
        },
        getNormalizedModules: function() {
            var t = this
              , e = t.getAlias()
              , r = []
              , n = this.ctx.Loader.Utils;
            return n.each(e, (function(t) {
                t && r.push(t)
            }
            )),
            t.normalizedModules = n.map(r, (function(e) {
                return t.ctx.Loader.Utils.createModule(e)
            }
            )),
            t.normalizedModules
        },
        fixTwoVersion: function(t) {
            var e = /(\d+\.\d+\.\d+\/.*)\d+\.\d+\.\d+\//;
            return e.test(t) && (t = t.replace(e, "$1")),
            t
        },
        getUri: function() {
            var t = this;
            return t.uri = this.ctx.Loader.Utils.normalizeSlash(this.ctx.Config.resolveModFn(t)),
            this.fixTwoVersion(t.uri)
        },
        getUrl: function() {
            return this.getUri()
        },
        getExports: function() {
            var t = this.getNormalizedModules();
            return t[0] && t[0].exports
        },
        getPackage: function() {
            var t = this;
            if (void 0 !== t.packageInfo)
                return t.packageInfo;
            var e, r = t.id, n = this.ctx.Config, o = this.ctx.Loader.Utils, i = o.startsWith, a = o.filter, s = n.packages, u = t.id + "/", c = a(u.split("/"), (function(t) {
                return t.length > 0
            }
            )).slice(0, 2).join("/");
            if (s[c])
                return t.packageInfo = s[c],
                t.packageInfo;
            for (e in c = "",
            s) {
                var l = e;
                o.endsWith(l, "/") || (l += "/"),
                i(u, l) && e.length > c.length && (c = e)
            }
            return s[c] ? (t.packageInfo = s[c],
            t.packageInfo.addChildModule(c, t),
            t.packageInfo) : i(r, "/") || i(r, "http://") || i(r, "https://") || i(r, "file://") ? (t.packageInfo = null,
            t.packageInfo) : (t.packageInfo = s.core,
            t.packageInfo)
        },
        getTag: function() {
            var t = this;
            return t.tag || t.getPackage() && t.getPackage().getTag()
        },
        getCharset: function() {
            var t = this;
            return t.charset || t.getPackage() && t.getPackage().getCharset()
        },
        setRequiresModules: function(t) {
            var e = this
              , r = e.requiredModules = e.ctx.Loader.Utils.map(function(t, e) {
                for (var r = (t = t || []).length, n = 0; n < r; n++)
                    t[n] = e.resolve(t[n]).id;
                return t
            }(t, e), (function(t) {
                return e.ctx.Loader.Utils.createModule(t)
            }
            ))
              , n = [];
            this.ctx.Loader.Utils.each(r, (function(t) {
                n.push.apply(n, t.getNormalizedModules())
            }
            )),
            e.normalizedRequiredModules = n
        },
        getNormalizedRequiredModules: function() {
            var t = this;
            return t.setRequiresModules(t.requires),
            t.normalizedRequiredModules
        },
        getRequiredModules: function() {
            var t = this;
            return t.requiredModules || t.setRequiresModules(t.requires),
            t.requiredModules
        },
        callFactory: function() {
            var t = this;
            return t.factory.apply(t, t.cjs ? [t._require, t.exports, t] : t.ctx.Loader.Utils.map(t.getRequiredModules(), (function(t) {
                return t.getExports()
            }
            )))
        },
        initSelf: function() {
            var t, r = this, n = r.factory, o = this.ctx.Config, i = this.ctx.Loader.Status, a = this.ctx.Loader.Utils;
            if ("function" == typeof n) {
                if (r.exports = {},
                o.debug)
                    t = r.callFactory();
                else {
                    try {
                        t = r.callFactory()
                    } catch (t) {
                        if (r.status = i.ERROR,
                        r.onError || o.onModuleError) {
                            var s = {
                                type: "init",
                                exception: t,
                                module: r
                            };
                            r.error = s,
                            r.onError && r.onError(s),
                            o.onModuleError && o.onModuleError(s)
                        } 
                            
                            
                        return 0
                    }
                    var u = 1;
                    if (a.each(r.getNormalizedRequiredModules(), (function(t) {
                        if (t.status === i.ERROR)
                            return u = 0,
                            !1
                    }
                    )),
                    !u)
                        return 0
                }
                t !== e && (r.exports = t)
            } else
                r.exports = n;
            return r.status = i.INITIALIZED,
            r.afterInit && r.afterInit(r),
            o.afterModuleInit && o.afterModuleInit(r),
            1
        },
        initRecursive: function() {
            var t = this
              , e = 1
              , r = t.status
              , n = this.ctx.Loader.Status
              , o = this.ctx.Loader.Utils;
            return r === n.ERROR ? 0 : (r >= n.INITIALIZING || (t.status = n.INITIALIZING,
            t.cjs ? e = t.initSelf() : (o.each(t.getNormalizedRequiredModules(), (function(t) {
                e = e && t.initRecursive()
            }
            )),
            e && t.initSelf())),
            e)
        },
        undef: function() {
            this.status = this.ctx.Loader.Status.UNLOADED,
            this.error = null,
            this.factory = null,
            this.exports = null
        }
    };
    t.prototype.initDataStructure = function() {
        var t = this
          , e = this.Loader;
        e.Package = function(e) {
            return new r(e,t)
        }
        ,
        e.Module = function(e) {
            return new o(e,t)
        }
    }
}(feloader),
feloader.prototype.initCssOnLoad = function() {
    var t = this.Loader.Utils
      , e = 0
      , r = {};
    function n(e) {
        var r = 0;
        if (t.webkit)
            e.sheet && (r = 1);
        else if (e.sheet)
            try {
                e.sheet.cssRules && (r = 1)
            } catch (t) {
                "NS_ERROR_DOM_SECURITY_ERR" === t.name && (r = 1)
            }
        return r
    }
    function o() {
        for (var i in r) {
            var a = r[i]
              , s = a.node;
            n(s) && (a.callback && a.callback.call(s),
            delete r[i])
        }
        e = t.isEmptyObject(r) ? 0 : setTimeout(o, 30)
    }
    t.pollCss = function(t, n) {
        var i = t.href
          , a = r[i] = {};
        a.node = t,
        a.callback = n,
        e || o()
    }
    ,
    t.isCssLoaded = n
}
,
feloader.prototype.initGetScript = function() {
    var t, e = this.Env.host.document, r = this.Loader.Utils, n = this.Config, o = {}, i = r.webkit;
    this.getScript = function(a, s, u) {
        var c, l, f, d, h, g = s, p = n.crossorigin, v = r.endsWith(a, ".css");
        if ("object" == typeof g && (s = g.success,
        c = g.error,
        l = g.timeout,
        u = g.charset,
        f = g.attrs),
        v && r.ieMode < 10 && e.getElementsByTagName("style").length + e.getElementsByTagName("link").length >= 31)
            return setTimeout((function() {
                throw new Error("style and link's number is more than 31.ie < 10 can not insert link: " + a)
            }
            ), 0),
            void (c && c());
        if ((d = o[a] = o[a] || []).push([s, c]),
        d.length > 1)
            return d.node;
        var m = e.createElement(v ? "link" : "script");
        f && r.each(f, (function(t, e) {
            m.setAttribute(e, t)
        }
        )),
        u && (m.charset = u),
        v ? (m.href = a,
        m.rel = "stylesheet") : (m.src = a,
        m.async = !0,
        p && m.setAttribute("crossorigin", "anonymous")),
        d.node = m;
        var y = function(t) {
            var e, n = t;
            h && (clearTimeout(h),
            h = void 0),
            r.each(o[a], (function(t) {
                (e = t[n]) && e.call(m)
            }
            )),
            delete o[a]
        }
          , x = "onload"in m
          , b = n.forceCssPoll || i && i < 536 || !i && !r.trident && !r.gecko;
        function M() {
            var t = m.readyState;
            t && "loaded" !== t && "complete" !== t || (m.onreadystatechange = m.onload = null,
            y(0))
        }
        return v && b && x && (x = !1),
        x ? (m.onload = M,
        m.onerror = function() {
            m.onerror = null,
            y(1)
        }
        ) : v ? r.pollCss(m, (function() {
            y(0)
        }
        )) : m.onreadystatechange = M,
        l && (h = setTimeout((function() {
            y(1)
        }
        ), 1e3 * l)),
        t || (t = r.docHead()),
        v ? t.appendChild(m) : t.insertBefore(m, t.firstChild),
        m
    }
}
,
function(t, e) {
    function r(t, e) {
        return function(r) {
            var n = {};
            for (var o in r)
                n[o] = {},
                n[o][t] = r[o];
            e.config("modules", n)
        }
    }
    feloader.prototype.initConfig = function() {
        var t = this
          , n = this.Loader
          , o = n.Package
          , i = n.Utils
          , a = this.Env.host
          , s = this.Config
          , u = a.location
          , c = s.fns;
        function l(t, e) {
            if (t = i.normalizeSlash(t),
            e && "/" !== t.charAt(t.length - 1) && (t += "/"),
            u) {
                if (i.startsWith(t, "http:") || i.startsWith(t, "//") || i.startsWith(t, "https:") || i.startsWith(t, "file:"))
                    return t;
                t = u.protocol + "//" + u.host + i.normalizePath(u.pathname, t)
            }
            return t
        }
        function f(t, e, r) {
            var n = e.getTag() || s.tag || "";
            return n && (r && (n += r),
            t += "?t=" + n),
            t
        }
        s.loadModsFn = function(e, r) {
            window.isPortalDomain && (window.gConfig = window.gConfig || {},
            window.gConfig.resDomain = "res.hc-cdn",
            e.uri = e.uri.replace(`${window.gConfig.resDomain || "res.hc-cdn"}.com`, "portal.hc-cdn.com")),
            t.getScript(e.uri, r)
        }
        ,
        s.resolveModFn = function(t) {
            var e, r, n, o = t.id, a = t.path, s = t.getPackage();
            if (!s) {
                var u = i.endsWith(o, ".css")
                  , c = i.endsWith(o, ".js");
                return u || c || (o += ".js"),
                f(o, t, r = "." + (n = u ? "css" : "js"))
            }
            var l = s.getBase()
              , d = s.name;
            return r = "." + (n = t.getType()),
            a || (i.endsWith(o, r) && (o = o.slice(0, -r.length)),
            "function" == typeof (e = s.getFilter() || "") ? a = e(o, n) : "string" == typeof e && (e && (e = "." + e),
            a = o + e + r)),
            f("core" === d ? l + a : o === d ? l.substring(0, l.length - 1) + e + r : l + (a = a.substring(d.length + 1)), t, r)
        }
        ,
        c.requires = r("requires", t),
        c.alias = r("alias", t),
        c.packages = function(t) {
            var r = s.packages;
            return t === e ? r : t ? (i.each(t, (function(t, e) {
                var n = t.name || e;
                i.startsWith(n, "/") ? n = u.protocol + "//" + u.host + n : (i.startsWith(n, "./") || i.startsWith(n, "../")) && (n = i.normalizePath(u.href, n)),
                i.endsWith(n, "/") && (n = n.slice(0, -1)),
                t.name = n;
                var a = t.base || t.path;
                a && (t.base = l(a, !0)),
                r[n] ? r[n].reset(t) : r[n] = new o(t)
            }
            )),
            e) : (s.packages = {
                core: r.core
            },
            e)
        }
        ,
        c.modules = function(t) {
            t && i.each(t, (function(t, e) {
                var r = t.uri;
                r && (t.uri = l(r)),
                i.createModule(e, t)
            }
            ))
        }
        ,
        c.base = function(t) {
            var r = s.packages.core;
            return t ? (this.config("packages", {
                core: {
                    base: t
                }
            }),
            e) : r && r.getBase()
        }
    }
}(),
function(t, e) {
    function r(t, e) {
        if (t || "function" != typeof e)
            t && t.requires && !t.cjs && (t.cjs = 0);
        else {
            var r = [];
            r.length && ((t = t || {}).requires = r)
        }
        return t
    }
    function n(t) {
        var e, r, n, o = [];
        for (e = 0,
        n = t.length; e < n; e++)
            "exports" === (r = t[e]) || "module" === r || "require" === r || o.push(r);
        return o
    }
    function o(t, e) {
        var r = "";
        -1 !== t.indexOf("//") && (r = t.substring(0, t.indexOf("//") + 2)),
        t = t.substring(r.length).split(/\//),
        e = e.substring(r.length).split(/\//);
        for (var n = Math.min(t.length, e.length), o = 0; o < n && t[o] === e[o]; o++)
            ;
        var i = r + t.slice(0, o).join("/") + "/";
        return i = i.replace(/\/\/$/, "/")
    }
    feloader.prototype.initComboLoader = function() {
        var t, i, a = this.Loader, s = this.Config, u = a.Status, c = a.Utils, l = c.addModule, f = c.each, d = c.getHash, h = u.LOADING, g = u.LOADED, p = u.ERROR, v = c.ieMode && c.ieMode < 10;
        function m(r, n, o) {
            var a = r && r.length
              , u = []
              , c = [];
            function d() {
                --a || n(c, u)
            }
            f(r, (function(r) {
                var n, a = {
                    timeout: o,
                    success: function() {
                        c.push(r),
                        n && t && (l(n.id, t.factory, t.config),
                        t = e),
                        d()
                    },
                    error: function() {
                        u.push(r),
                        d()
                    },
                    charset: r.charset
                };
                r.combine || ("css" === (n = r.mods[0]).getType() ? n = e : v && (i = n.id,
                a.attrs = {
                    "data-mod-id": n.id
                })),
                s.loadModsFn(r, a)
            }
            ))
        }
        var y = 0;
        function x(t) {
            this.callback = t,
            this.head = this.tail = e,
            this.id = "loader" + ++y
        }
        x.add = function(o, a, s, u) {
            if ("string" == typeof o)
                if (3 === u && c.isArray(a)) {
                    var f = a;
                    a = s,
                    s = {
                        requires: n(f),
                        cjs: 1
                    }
                } else
                    2 === u && a.call && (s = {
                        cjs: 1
                    });
            if (c.isArray(o) && 2 === u) {
                f = o;
                o = a,
                a = {
                    requires: n(f),
                    cjs: 1
                }
            }
            "function" == typeof o || 1 === u ? (s = r(s = a, a = o),
            v ? ((o = function() {
                var t, e, r, n, o = document.getElementsByTagName("script");
                for (e = o.length - 1; e >= 0; e--)
                    if ("interactive" === (n = o[e]).readyState) {
                        t = n;
                        break
                    }
                r = t ? t.getAttribute("data-mod-id") : i;
                return r
            }()) && l(o, a, s),
            i = null,
            0) : t = {
                factory: a,
                config: s
            }) : (v ? (i = null,
            0) : t = e,
            s = r(s, a),
            l(o, a, s))
        }
        ,
        c.mix(x.prototype, {
            use: function(t) {
                for (var e, r = s.timeout, n = [], o = 0; o < t.length; o++)
                    t[o].id && n.push(t[o]);
                t = n,
                (e = this.getComboUris(t)).css && m(e.css, (function(t, e) {
                    f(t, (function(t) {
                        f(t.mods, (function(t) {
                            l(t.id, c.noop),
                            t.flush()
                        }
                        ))
                    }
                    )),
                    f(e, (function(t) {
                        f(t.mods, (function(e) {
                            var r = e.id + " is not loaded! can not find module in uri: " + t.uri;
                            console.error(r),
                            e.status = p;
                            var n = {
                                type: "load",
                                exception: r,
                                module: e
                            };
                            e.error = n,
                            e.onError && e.onError(n),
                            s.onModuleError && s.onModuleError(n),
                            e.flush()
                        }
                        ))
                    }
                    ))
                }
                ), r),
                e.js && m(e.js, (function(t) {
                    f(e.js, (function(t) {
                        f(t.mods, (function(e) {
                            if (!e.factory) {
                                var r = e.id + " is not loaded! can not find module in uri: " + t.uri;
                                console.error(r),
                                e.status = p;
                                var n = {
                                    type: "load",
                                    exception: r,
                                    module: e
                                };
                                e.error = n,
                                e.onError && e.onError(n),
                                s.onModuleError && s.onModuleError(n)
                            }
                            e.flush()
                        }
                        ))
                    }
                    ))
                }
                ), r)
            },
            calculate: function(t, e, r, n, o) {
                var i, a, u, c, l = this;
                for (o = o || [],
                n = n || {},
                i = 0; i < t.length; i++) {
                    if (!n[a = (u = t[i]).id])
                        if ((c = u.status) !== p)
                            if (s.requireModsPre && l.calculate(u.getNormalizedRequiredModules(), e, r, n, o),
                            c > g)
                                n[a] = 1;
                            else
                                c === g || u.contains(l) || (c !== h && (u.status = h,
                                o.push(u)),
                                u.add(l),
                                l.wait(u)),
                                s.requireModsPre || l.calculate(u.getNormalizedRequiredModules(), e, r, n, o),
                                n[a] = 1;
                        else
                            e.push(u),
                            n[a] = 1
                }
                return o
            },
            getComboMods: function(t) {
                var e, r, n, i, a, s, u, l, f, h = t.length, g = {}, p = {};
                for (e = 0; e < h; ++e)
                    if (a = (n = t[e]).getType(),
                    n.getUri(),
                    (i = n.getPackage()) ? (l = i.getBase(),
                    i.name,
                    u = i.getCharset(),
                    s = i.getTag(),
                    f = i.getGroup()) : l = n.id,
                    i && i.isCombine() && f) {
                        var v = g[a] || (g[a] = {})
                          , m = v[f = f + "-" + u] || (v[f] = {})
                          , y = 0;
                        c.each(m, (function(t, e) {
                            if (c.isSameOriginAs(e, l)) {
                                var r = o(e, l);
                                t.push(n),
                                s && s !== t.tag && (t.tag = d(t.tag + s)),
                                delete m[e],
                                m[r] = t,
                                y = 1
                            }
                        }
                        )),
                        y || ((r = m[l] = [n]).charset = u,
                        r.tag = s || "")
                    } else {
                        var x = p[a] || (p[a] = {});
                        (r = x[l]) ? s && s !== r.tag && (r.tag = d(r.tag + s)) : ((r = x[l] = []).charset = u,
                        r.tag = s || ""),
                        r.push(n)
                    }
                return {
                    groups: g,
                    normals: p
                }
            },
            getComboUris: function(t) {
                var r, n, i, a = s.comboPrefix, u = s.comboSep, l = {}, f = s.comboMaxFileNum, d = s.comboMaxUriLength, h = this.getComboMods(t);
                function g(t, r, n) {
                    var i, h = [], g = [], p = n.tag, v = n.charset, m = p ? "?t=" + encodeURIComponent(p) + "." + t : "", y = r.length, x = [];
                    function b(t) {
                        if (r) {
                            if (s.useDailyAssets)
                                return t.replace(s.assetsHost, s.dailyAssetsHost);
                            if (s.forceAssetsHost)
                                return t.replace(s.assetsHost, s.forceAssetsHost)
                        }
                        return t
                    }
                    function M(t) {
                        x.push({
                            combine: 1,
                            uri: b(t),
                            charset: v,
                            mods: g
                        })
                    }
                    function E() {
                        return function(t, e, r, n, o, i) {
                            if (t && e.length > 1) {
                                for (var a = t.length, s = [], u = 0; u < e.length; u++)
                                    s[u] = e[u].substring(a);
                                return r + t + n + s.join(o) + i
                            }
                            return r + n + e.join(o) + i
                        }(i, h, r, a, u, m)
                    }
                    for (var L = 0; L < n.length; L++) {
                        var w = n[L]
                          , k = w.getUri();
                        if (w.getPackage() && w.getPackage().isCombine() && c.startsWith(k, r)) {
                            var C = k.slice(y).replace(/\?.*$/, "");
                            h.push(C),
                            g.push(w),
                            i === e ? i = -1 !== C.indexOf("/") ? C : "" : "" !== i && "/" === (i = o(i, C)) && (i = ""),
                            (h.length > f || E().length > d) && (h.pop(),
                            g.pop(),
                            M(E()),
                            h = [],
                            g = [],
                            i = e,
                            L--)
                        } else
                            x.push({
                                combine: 0,
                                uri: b(k),
                                charset: v,
                                mods: [w]
                            })
                    }
                    h.length && M(E()),
                    l[t].push.apply(l[t], x)
                }
                var p = h.normals
                  , v = h.groups;
                for (r in p)
                    for (n in l[r] = l[r] || [],
                    p[r])
                        g(r, n, p[r][n]);
                for (r in v)
                    for (i in l[r] = l[r] || [],
                    v[r])
                        for (n in v[r][i])
                            g(r, n, v[r][i][n]);
                return l
            },
            flush: function() {
                var t = this;
                if (t.callback) {
                    for (var e = t.head, r = t.callback; e; ) {
                        var n = e.node
                          , o = n.status;
                        if (!(o >= g || o === p))
                            return;
                        n.remove(t),
                        e = t.head = e.next
                    }
                    t.callback = null,
                    r()
                }
            },
            isCompleteLoading: function() {
                return !this.head
            },
            wait: function(t) {
                var e = this;
                if (e.head) {
                    var r = {
                        node: t
                    };
                    e.tail.next = r,
                    e.tail = r
                } else
                    e.tail = e.head = {
                        node: t
                    }
            }
        }),
        a.ComboLoader = x
    }
}(),
function(t) {
    t.prototype.initLoader = function() {
        var e = this.Loader
          , r = e.Utils
          , n = r.createModule
          , o = e.ComboLoader;
        r.mix(this, {
            getModule: function(t) {
                return n(t)
            },
            getPackage: function(t) {
                return this.Config.packages[t]
            },
            add: function(t, e, r) {
                o.add(t, e, r, arguments.length)
            },
            use: function(e, n, i) {
                var a;
                if ("string" == typeof e && (e = e.split(/\s*,\s*/)),
                !e || e && !e.length)
                    return t;
                "object" == typeof n && (i = n.error,
                n = n.success);
                for (var s = 0; s < e.length; s++) {
                    var u = e[s];
                    (r.startsWith(u, "./") || r.startsWith(u, "../")) && (e[s] = r.normalizePath(location.href, u))
                }
                var c = r.createModules(e)
                  , l = [];
                
                function d() {
                    0;
                    var e = []
                      , o = a.calculate(l, e);
                    if (e.length)
                        f(e, "load");
                    else if (a.isCompleteLoading()) {
                        if (r.initModules(l)) {
                            if (n) {
                                try {
                                    n.apply(t, r.getModulesExports(c))
                                } catch (t) {
                                    throw console.error(t),
                                    t
                                }
                                n = null
                            }
                        } 
                    } else
                        a.callback = d,
                        o.length && a.use(o)
                }
                return r.each(c, (function(t) {
                    l.push.apply(l, t.getNormalizedModules())
                }
                )),
                a = new o(d),
                d(),
                t
            },
            require: function(t) {
                return n(t).getExports()
            },
            undef: function(t) {
                var e = n(t).getNormalizedModules();
                r.each(e, (function(t) {
                    t.undef()
                }
                ))
            }
        });
        this.config({
            comboPrefix: "??",
            comboSep: ",",
            charset: "utf-8",
            filter: "",
            lang: "zh-cn"
        }),
        this.config("packages", {
            core: {
                filter: "",
                base: "."
            }
        })
    }
}(feloader),
function(t) {
    t.prototype.init = function() {}
    ,
    window.feloader = t = new t;
    var e = t.Env.host && t.Env.host.document
      , r = t.Loader.Utils
      , n = function(t, e) {
        var r = new RegExp("^(.*)(" + e + ")(?:-debug|)?\\.js[^/]*","i")
          , n = new RegExp("(" + e + ")(?:-debug|)?\\.js","i")
          , o = t.src || "";
        if (!o.match(n))
            return 0;
        var i, a, s = t.getAttribute("data-config"), u = (s = s ? new Function("return " + s)() : {}).comboPrefix, c = s.comboSep, l = o.indexOf(u);
        if (-1 === l)
            a = o.replace(r, "$1");
        else {
            "/" !== (a = o.substring(0, l)).charAt(a.length - 1) && (a += "/");
            for (var f = 0, d = (i = o.substring(l + u.length).split(c)).length; f < d; f++) {
                var h = i[f];
                if (h.match(n)) {
                    a += h.replace(r, "$1");
                    break
                }
            }
        }
        return s.base = s.base || a,
        s
    }
      , o = function(t) {
        var r, o, i = e.getElementsByTagName("script");
        for (r = i.length - 1; r >= 0; r--)
            if (o = n(i[r], t))
                return o;
        return null
    };
    t.init = function(e) {
        var r = e.name;
        t.config(o(r))
    }
    ,
    t.onLoad = function(t) {
        var e = function() {
            setTimeout(t, 16)
        };
        "complete" === document.readyState ? e() : window.addEventListener("load", e)
    }
    ,
    t.domReady = function(t) {
        window.addEventListener("DOMContentLoaded", (function() {
            setTimeout(t, 16)
        }
        ))
    }
    ,
    e && e.getElementsByTagName && t.config(r.mix({
        comboMaxUriLength: 2e3,
        comboMaxFileNum: 40
    }, o("feloader")));
    var i = window
      , a = i.require;
    i.require = function() {
        t.use.apply(t, arguments)
    }
    ,
    i.require.config = function() {
        t.config.apply(t, arguments)
    }
    ;
    var s = i.define;
    i.define = function() {
        t.add.apply(t, arguments)
    }
    ,
    i.define.amd = {},
    t.noConflict = function() {
        i.require = a,
        i.define = s
    }
}(feloader),
function(t, e) {
    e.gConfig = e.gConfig || {};
    var r, n, o, i = e.gConfig.seed, a = t.Loader.Utils, s = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
    function u(t) {
        r && n || e.addEventListener("orientationchange", (function() {
            r = e.innerHeight,
            n = e.innerWidth
        }
        ));
        var o = 0
          , i = 0
          , a = t.getBoundingClientRect();
        return !(!a.width && !a.height || a.top - (r || (r = e.innerHeight)) > i || a.bottom + i < 0 || a.left - (n || (n = e.innerWidth)) > o || a.right + o < 0)
    }
    function c(t, r) {
        "string" == typeof t && (t = document.querySelector(t));
        var n = {
            scroller: e,
            rootMarginY: 667,
            rootMarginX: 0
        };
        if (e.IntersectionObserver) {
            var o = new IntersectionObserver((function(e) {
                e[0].intersectionRatio > 0 && (r(t),
                o.disconnect())
            }
            ),{
                root: n.scroller === e ? null : n.scroller,
                rootMargin: "".concat(n.rootMarginY, "px ").concat(n.rootMarginX, "px"),
                threshold: 1e-4
            });
            o.observe(t)
        } else {
            var i = function() {
                return u(t)
            };
            if (i())
                return r(t);
            var s = a.throttle((function() {
                i() && (n.scroller.removeEventListener("scroll", s, {
                    passive: !0
                }),
                e.removeEventListener("orientationchange", s),
                r(t))
            }
            ), 50);
            n.scroller.addEventListener("scroll", s, {
                passive: !0
            }),
            e.addEventListener("orientationchange", s)
        }
    }
    function l() {
        for (var t = s ? "data-mod-name-m" : "data-mod-name-pc", e = document.querySelectorAll("[" + t + "]"), r = [], n = 0; n < e.length; n++) {
            var o = e[n]
              , i = o.getAttribute("data-loaded")
              , a = o.getAttribute(t);
            i || "@" !== a[0] || r.push({
                name: a,
                dom: o
            })
        }
        return r
    }
    function f(t, e) {
        e.getAttribute("data-loaded") || (e.setAttribute("data-loaded", !0),
        feloader.use(t, (function(t) {
            new t(e)
        }
        ), (function(r) {
            setTimeout((function() {
                feloader.use(t, (function(t) {
                    new t(e)
                }
                ))
            }
            ), 100),
            console.error(t + "模块加载失败，100ms后重试一次!"),
            console.error(r)
        }
        )))
    }
    function d(t, e) {
        if ("string" != typeof t)
            return !1;
        if ("string" != typeof e)
            return !1;
        t = t.split("."),
        e = e.split(".");
        for (var r = Math.min(t.length, e.length), n = 0; n < r; ++n) {
            if (t[n] = parseInt(t[n], 10),
            e[n] = parseInt(e[n], 10),
            t[n] > e[n])
                return 1;
            if (t[n] < e[n])
                return -1
        }
        return t.length == e.length ? 0 : t.length < e.length ? -1 : 1
    }
    function h(t, e) {
        for (var r in delete t.data.packages[e],
        t.data.modules)
            0 === r.indexOf(e + "/") && delete t.data.modules[r]
    }
    function g(t) {
        return t && "object" == typeof t && !Array.isArray(t)
    }
    function p(t, e, r) {
        return e in t ? Object.defineProperty(t, e, {
            value: r,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : t[e] = r,
        t
    }
    function v(t) {
        for (var e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), n = 1; n < e; n++)
            r[n - 1] = arguments[n];
        if (!r.length)
            return t;
        var o = r.shift();
        if (g(t) && g(o))
            for (var i in o)
                g(o[i]) ? (t[i] || a.mix(t, p({}, i, {})),
                v(t[i], o[i])) : a.mix(t, p({}, i, o[i]));
        return v.apply(void 0, [t].concat(r))
    }
    function m(t, e) {
        for (var r in t.data.packages) {
            if (e.data.packages.hasOwnProperty(r))
                if (t.data.packages[r].version)
                    -1 === d(t.data.packages[r].version, e.data.packages[r].version) && h(t, r)
        }
        return t
    }
    e.NodeList && !NodeList.prototype.forEach && (NodeList.prototype.forEach = function(t, r) {
        r = r || e;
        for (var n = 0; n < this.length; n++)
            t.call(r, this[n], n, this)
    }
    ),
    e.gConfig.feloaderConfig && t.config(e.gConfig.feloaderConfig),
    -1 !== e.location.href.indexOf("feloader=debug") && t.config({
        filter: "debug"
    }),
    i && i.length && (o = 1 === i.length ? i[0].data : function(t) {
        for (var e = {}, r = t.length, n = 0; n < r; n++)
            for (var o = t[n], i = 0; i < r; i++)
                if (n !== i) {
                    var a;
                    a = m(o, t[i]),
                    t[n] = a
                }
        for (var s = 0; s < t.length; s++)
            e = 0 === s ? v(t[s].data, t[s + 1].data) : v(e, t[s].data);
        return e
    }(i),
    e.gConfig && e.gConfig.devModule && o.packages[e.gConfig.devModule.name] && (o.packages[e.gConfig.devModule.name].path = e.gConfig.devModule.path),
    t.config(o)),
    t.domReady((function() {
        var t = l();
        if (t && t.length)
            for (var e = 0; e < t.length; e++)
                !function(e) {
                    var r = t[e];
                    c(r.dom, (function(t) {
                        f(r.name, t)
                    }
                    ))
                }(e)
    }
    )),
    t.onLoad((function() {
        var t = l();
        if (t && t.length)
            for (var e = 0; e < t.length; e++) {
                var r = t[e];
                f(r.name, r.dom)
            }
    }
    ))
}(feloader, window);
